Chapter 3 The transmission loss profiles
3.1 The 2019 transmission loss profile
A transmissions loss profile is calculated from the difference between the EGAT net electricity generation and the EGAT electricity sale profile (see equation (3.1))
\[\begin{equation} LSS_{i,t,h} = EGTNETGEN_{i,t,h} - EGTSLE_{i,t,h} \tag{3.1} \end{equation}\]
Where,
\(LSS_{i,t,h}\) denotes a transmission loss profile in region \(i\) in year \(t\) at time stamp \(h\) (MW).
\(EGTNETGEN_{i,t,h}\) denotes a EGAT net generation profile in region \(i\) in year \(t\) at time stamp \(h\) (MW) (see equation (2.5)).
\(EGTSLE_{i,t,h}\) denotes the electricity EGAT sale (\(EGTSLE\)) profile in year \(t\) at time stamp \(h\) (MW) (see equation (2.4)).
profile <-
profiledata$`egt_netgen_2019` %>%
mutate(egt_sle = profiledata$egtsle_2019$egt_sle,
tran_loss = egt_netgen - egt_sle) %>%
select(-egt_netgen, -egt_sle)
# Summary data ####
maxv <- ceiling(max(profile$tran_loss)) # Get a peak MW
minv <- floor(min(profile$tran_loss)) # Get a min MW
energy <- sum(profile$tran_loss)/2000 # Calculate the energy
peak_day <- profile %>% #Find a peak day
group_by(year) %>%
filter(tran_loss == max(tran_loss)) %>%
pull(datetime)
min_day <- profile %>% #Find a min day
group_by(year) %>%
filter(tran_loss == min(tran_loss)) %>%
last() %>%
pull(datetime)
load_factor <- percent((energy*10^3)/(maxv*8760),
accuracy = 0.01,
decimal.mark = ".")
summary <- tibble(peak_day = peak_day,
min_day = min_day,
peak_mw = maxv,
min_mw = minv,
energy_gwh = energy,
load_factor = load_factor) # combine all data in 1 table| peak_day | min_day | peak_mw | min_mw | energy_gwh | load_factor |
|---|---|---|---|---|---|
| 2019-06-22 19:00:00 | 2019-01-26 12:00:00 | 1666 | -1017 | 3005.719 | 20.60% |
profile_plot <-
ggplot() +
geom_line(data=profile,
aes(x = datetime,
y = tran_loss,
group = month,
color = as.factor(month)),
show.legend = FALSE) +
ThemeLine +
labs(x = NULL,
y = "Transmission loss & use (MW)")+
scale_x_datetime(breaks=date_breaks("1 month"),
labels=date_format("%b %y")) +
scale_y_continuous(breaks = seq(round(minv,-3), round(maxv,-3)*1.2,200),
limits = c(round(minv,-3)*1.1, round(maxv, -3)*1.1)) +
scale_color_manual(values = linepalette1) +
geom_point(data=summary,
aes(x = peak_day, y = peak_mw))+
geom_hline(yintercept = 0) +
geom_text(data = summary,
aes(x = peak_day, y = round(maxv, -3)*1.05),
label = glue("Peak {maxv} MW \n@ {peak_day}"),
hjust = 0.5) +
geom_point(data=summary,
aes(x = min_day, y = min_mw))+
geom_text(data = summary,
aes(x = min_day, y = round(minv, -3)*0.8),
label = glue("Minimum {minv} MW \n@ {min_day}"),
hjust = 0,
vjust = 0)
# Save the output ####
outputfigure <- paste0(outfigdir, "tran_loss_2019.png")
ggsave(profile_plot, file = outputfigure, dpi = 150, width = 15, height = 5, units = "in", limitsize = FALSE)
profiledata <- c(profiledata, list("tran_loss_2019" = profile))
profilefigure <- c(profilefigure, list("tran_loss_2019" = profile_plot))
summarydata <- c(summarydata, list("sum_tran_loss_2019" = summary))The 2019 transmission loss profile is illustrated in Figure 3.1.
Figure 3.1: The transmission loss profile in 2019.
###The 2019 MEA transmission loss and use profile
profile <-
profiledata$mea_requirement_2019 %>%
mutate(mea_egt_sle = profiledata$mea_egtsle_2019$MEA,
mea_tran_loss = MAC - mea_egt_sle) %>%
select(-MAC, -mea_egt_sle)
# Summary data ####
maxv <- ceiling(max(profile$mea_tran_loss)) # Get a peak MW
minv <- floor(min(profile$mea_tran_loss)) # Get a min MW
energy <- sum(profile$mea_tran_loss)/2000 # Calculate the energy
peak_day <- profile %>% #Find a peak day
group_by(year) %>%
filter(mea_tran_loss == max(mea_tran_loss)) %>%
pull(datetime)
min_day <- profile %>% #Find a min day
group_by(year) %>%
filter(mea_tran_loss == min(mea_tran_loss)) %>%
last() %>%
pull(datetime)
load_factor <- percent((energy*10^3)/(maxv*8760),
accuracy = 0.01,
decimal.mark = ".")
summary <- tibble(peak_day = peak_day,
min_day = min_day,
peak_mw = maxv,
min_mw = minv,
energy_gwh = energy,
load_factor = load_factor) # combine all data in 1 table| peak_day | min_day | peak_mw | min_mw | energy_gwh | load_factor |
|---|---|---|---|---|---|
| 2019-12-19 08:30:00 | 2019-07-01 | 1633 | 75 | 9319.783 | 65.15% |
profile_plot <-
ggplot() +
geom_line(data=profile,
aes(x = datetime,
y = mea_tran_loss,
group = month,
color = as.factor(month)),
show.legend = FALSE) +
ThemeLine +
labs(x = NULL,
y = "MEA transmission loss & use (MW)")+
scale_x_datetime(breaks=date_breaks("1 month"),
labels=date_format("%b %y")) +
scale_y_continuous(breaks = seq(round(minv,-3), round(maxv,-3)*1.2,200),
limits = c(round(minv,-3)*1.1, round(maxv, -3))) +
scale_color_manual(values = linepalette1) +
geom_point(data=summary,
aes(x = peak_day, y = peak_mw))+
# geom_hline(yintercept = 0) +
geom_text(data = summary,
aes(x = peak_day, y = round(maxv, -3)),
label = glue("Peak {maxv} MW \n@ {peak_day}"),
hjust = 0.8,
vjust = 1) +
geom_point(data=summary,
aes(x = min_day, y = min_mw))+
geom_text(data = summary,
aes(x = min_day, y = round(minv, -3)*0.8),
label = glue("Minimum {minv} MW \n@ {min_day}"),
hjust = 0,
vjust = 0)
# Save the output ####
outputfigure <- paste0(outfigdir, "mea_tran_loss_2019.png")
ggsave(profile_plot, file = outputfigure, dpi = 150, width = 15, height = 5, units = "in", limitsize = FALSE)
profiledata <- c(profiledata, list("mea_tran_loss_2019" = profile))
profilefigure <- c(profilefigure, list("mea_tran_loss_2019" = profile_plot))
summarydata <- c(summarydata, list("sum_mea_tran_loss_2019" = summary))The 2019 MEA transmission loss profile is illustrated in Figure 3.2.
Figure 3.2: The MEA transmission loss profile in 2019.